package com.indexingsystem.boss.task;
//package com.indexingsystem.boss.task;
//
//import java.text.ParseException;
//import java.util.List;
//
//import javax.annotation.Resource;
//
//import org.apache.commons.lang.StringUtils;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//
//import com.indexingsystem.boss.entity.Tasks;
//import com.indexingsystem.system.service.ITasksService;
//
//public class SchedulerManage {
//	private static Logger LogCvt = LoggerFactory.getLogger(SchedulerManage.class);
//
//	@Autowired
//    public static Scheduler scheduler;
//      
//    @Resource 
//    private ITasksService iTasksService;  
//    
//    /** 
//     * 系统初始加载任务 
//     */  
//    public void loadJob() throws Exception {  
//        List<Tasks> jobList = iTasksService.findList(); 
//        if (null != jobList && jobList.size() > 0) {  
//            for (int i = 0; i < jobList.size(); i++) {  
//                Tasks tasks = jobList.get(i);  
//                // 任务开启状态 执行任务调度  
//                if (tasks.getTaskStatus() == 1) {  
//                    try {  
//                        JobDetail jobDetail = new JobDetail();  
//                        // 设置任务名称  
//                        if (StringUtils.isNotBlank(tasks.getTaskName())) {  
//                            jobDetail.setName(tasks.getTaskName());  
//                        } 
////                        else {  
////                            UUID uuid = UUID.randomUUID();  
////                            jobDetail.setName(uuid.toString());  
////                            job.setId(uuid.toString());  
////                        }  
//                        jobDetail.setGroup(Scheduler.DEFAULT_GROUP);  
//                        // 设置任务执行类  
//                        jobDetail.setJobClass(getClassByTask(tasks.getAssemblyName()));  
//                        // 添加任务参数  
//                        CronTrigger cronTrigger = new CronTrigger("cron_" + i, Scheduler.DEFAULT_GROUP,  
//                                jobDetail.getName(), Scheduler.DEFAULT_GROUP);  
//  
//                        cronTrigger.setCronExpression(tasks.getCronExpress());  
//                        // 调度任务  
//                        scheduler.scheduleJob(jobDetail, cronTrigger);  
//                    } catch (SchedulerException e) {  
//                        LogCvt.error("TasksService SchedulerException", e);  
//                    } catch (ClassNotFoundException e) {  
//                        LogCvt.error("TasksService ClassNotFoundException", e);  
//                    } catch (Exception e) {  
//                        LogCvt.error("TasksService Exception", e);  
//                    }  
//                }  
//            }  
//        }  
//    }  
//    
//    /** 
//     *  
//     * @param taskClassName 
//     *            任务执行类名 
//     * @return 
//     * @throws ClassNotFoundException 
//     */  
//    @SuppressWarnings("rawtypes")  
//    public static Class getClassByTask(String taskClassName) throws ClassNotFoundException {  
//        return Class.forName(taskClassName);  
//    } 
//    
//    public static void startTask(Tasks tasks, String name) {  
//        try {  
//            String cronExpress = tasks.getCronExpress();  
//            if (StringUtils.isNotEmpty(cronExpress) && cronExpress.indexOf("null") == -1) {  
//                JobDetail jobDetail = new JobDetail();  
//                jobDetail.setName(name);  
//                jobDetail.setGroup(Scheduler.DEFAULT_GROUP);  
//                jobDetail.setJobClass(getClassByTask(tasks.getAssemblyName()));  
//                CronTrigger cronTrigger = new CronTrigger("cron_" + name, Scheduler.DEFAULT_GROUP, jobDetail.getName(),  
//                        Scheduler.DEFAULT_GROUP);  
//                cronTrigger.setCronExpression(cronExpress);  
//                scheduler.scheduleJob(jobDetail, cronTrigger);  
//            }  
//        } catch (ParseException e) {  
//            LogCvt.error("TasksService ParseException", e);  
//        } catch (Exception e) {  
//            LogCvt.error("TasksService Exception", e);  
//        }  
//    }  
//    
//    
//    public static void endTask(String name) {  
//        try {  
//        	scheduler.deleteJob(name, Scheduler.DEFAULT_GROUP);  
//        } catch (SchedulerException e) {  
//            LogCvt.error("TasksService endTask", e);  
//        }  
//    } 
//}